package com.glorystone.ins.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.glorystone.ins.domain.CustomLocalDateSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;

/**
 * @author liuhongjie
 */
public class CheckDataVO {

    private Integer id; //ID

    private long capitalId; //资金流水表TID

    private long userId; //用户ID

    private String orderNum; //保单编号

    private String paySubject; //付款主体

    private String insurer; //保险公司

    private String insuranceType; //险种

    private BigDecimal realPremium; //实收保费

    private BigDecimal signPreminm; //税后保费

    private BigDecimal checkSignPreminm; //核对税后保费

    private BigDecimal followRatio; //跟单点位

    private BigDecimal replenishRatio; //补点点位

    private BigDecimal checkFollowRatio; //核对跟单点位

    private BigDecimal checkReplenishRatio; //核对补点点位

    private BigDecimal followPoundage; //跟单手续费

    private BigDecimal replenishPoundage; //补点手续费

    private Integer checkResult; //核对结果0不一致；1一致

    private Integer chechFollowResult; //跟单点位核对结果0不一致；1一致

    private Integer checkReplenishResult; //补点点位核对结果0不一致；1一致

    private Integer checkSignPreminmResult; //税后保费核对结果0不一致；1一致

    private Integer isTicketOpen; //是否开票

    private BigDecimal invoiceAmount; //开票金额

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate invoiceDate; //开票时间

    private BigDecimal realPremiumAmt; //实收返点

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate receiptDate; //收款时间

    private Integer status; //状态

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate checkDate; //核对时间

    private long updateBy; //更新人

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonSerialize(using = CustomLocalDateSerializer.class)
    private LocalDate updateDate; //更新时间

    private String remark; //备注

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public long getCapitalId() {
        return capitalId;
    }

    public void setCapitalId(long capitalId) {
        this.capitalId = capitalId;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public String getPaySubject() {
        return paySubject;
    }

    public void setPaySubject(String paySubject) {
        this.paySubject = paySubject;
    }

    public String getInsurer() {
        return insurer;
    }

    public void setInsurer(String insurer) {
        this.insurer = insurer;
    }

    public String getInsuranceType() {
        return insuranceType;
    }

    public void setInsuranceType(String insuranceType) {
        this.insuranceType = insuranceType;
    }

    public BigDecimal getRealPremium() {
        return realPremium;
    }

    public void setRealPremium(BigDecimal realPremium) {
        this.realPremium = realPremium;
    }

    public BigDecimal getSignPreminm() {
        return signPreminm;
    }

    public void setSignPreminm(BigDecimal signPreminm) {
        this.signPreminm = signPreminm;
    }

    public BigDecimal getCheckSignPreminm() {
        return checkSignPreminm;
    }

    public void setCheckSignPreminm(BigDecimal checkSignPreminm) {
        this.checkSignPreminm = checkSignPreminm;
    }

    public BigDecimal getFollowRatio() {
        return followRatio;
    }

    public void setFollowRatio(BigDecimal followRatio) {
        this.followRatio = followRatio;
    }

    public BigDecimal getReplenishRatio() {
        return replenishRatio;
    }

    public void setReplenishRatio(BigDecimal replenishRatio) {
        this.replenishRatio = replenishRatio;
    }

    public BigDecimal getCheckFollowRatio() {
        return checkFollowRatio;
    }

    public void setCheckFollowRatio(BigDecimal checkFollowRatio) {
        this.checkFollowRatio = checkFollowRatio;
    }

    public BigDecimal getCheckReplenishRatio() {
        return checkReplenishRatio;
    }

    public void setCheckReplenishRatio(BigDecimal checkReplenishRatio) {
        this.checkReplenishRatio = checkReplenishRatio;
    }

    public BigDecimal getFollowPoundage() {
        return followPoundage;
    }

    public void setFollowPoundage(BigDecimal followPoundage) {
        this.followPoundage = followPoundage;
    }

    public BigDecimal getReplenishPoundage() {
        return replenishPoundage;
    }

    public void setReplenishPoundage(BigDecimal replenishPoundage) {
        this.replenishPoundage = replenishPoundage;
    }

    public Integer getCheckResult() {
        return checkResult;
    }

    public void setCheckResult(Integer checkResult) {
        this.checkResult = checkResult;
    }

    public Integer getChechFollowResult() {
        return chechFollowResult;
    }

    public void setChechFollowResult(Integer chechFollowResult) {
        this.chechFollowResult = chechFollowResult;
    }

    public Integer getCheckReplenishResult() {
        return checkReplenishResult;
    }

    public void setCheckReplenishResult(Integer checkReplenishResult) {
        this.checkReplenishResult = checkReplenishResult;
    }

    public Integer getCheckSignPreminmResult() {
        return checkSignPreminmResult;
    }

    public void setCheckSignPreminmResult(Integer checkSignPreminmResult) {
        this.checkSignPreminmResult = checkSignPreminmResult;
    }

    public Integer getIsTicketOpen() {
        return isTicketOpen;
    }

    public void setIsTicketOpen(Integer isTicketOpen) {
        this.isTicketOpen = isTicketOpen;
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public LocalDate getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(LocalDate invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public BigDecimal getRealPremiumAmt() {
        return realPremiumAmt;
    }

    public void setRealPremiumAmt(BigDecimal realPremiumAmt) {
        this.realPremiumAmt = realPremiumAmt;
    }

    public LocalDate getReceiptDate() {
        return receiptDate;
    }

    public void setReceiptDate(LocalDate receiptDate) {
        this.receiptDate = receiptDate;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public long getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(long updateBy) {
        this.updateBy = updateBy;
    }

    public LocalDate getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(LocalDate updateDate) {
        this.updateDate = updateDate;
    }

    public LocalDate getCheckDate() {
        return checkDate;
    }

    public void setCheckDate(LocalDate checkDate) {
        this.checkDate = checkDate;
    }
}